<?php

namespace Common\Model;

use Think\Exception;
use Think\Model;

class UploadImgModel extends Model
{
    /**
     * 上传图片注册
     * @param array $data 上传图片注册数据
     * @return array 注册数据，空数组表示不存在
     * @throws Exception 当注册失败时
     */
    public function register(array $data)
    {
        $saveUploadRet = $this->create($data);
        if ($saveUploadRet) {
            $newId = $this->add();
            if (!$newId) {
                $errMsg = '上传图片注册失败';
                E($errMsg);
            } else {
                $data['id'] = $newId;
            }
        } else {
            $errMsg = $saveUploadRet->getError();
            E($errMsg);
        }
        return $data;
    }

    /**
     * 获取上传文件的ID
     * @param string $tmp_name 上传文件路径名称
     * @return array 注册数据，空数组表示不存在
     */
    public function get_one_file($tmp_name)
    {
        $sha1 = sha1_file($tmp_name);
        $ret = $this->where(array('sha1' => $sha1))->find();
        return $ret ?: array();
    }

    /**
     * 返回上传注册图片信息
     * @param int $id 图片ID
     * @return array 注册数据，空数组表示不存在
     */
    public function get_one_id($id)
    {
        $map['id'] = $id;
        $info = $this->where($map)->find();
        return $info ?: array();
    }
}